const mysql = require('mysql');

// 创建数据库连接（这里可以考虑提取到单独的数据库连接配置文件统一管理，此处为简单示例）
const client = mysql.createConnection({
    host: 'localhost',
    port: '3306',
    user: 'root',
    password: '123456',
    database: 'item_management'
});

// 查找用户的函数，根据用户名和密码查询用户是否存在
const findUser = (username, password) => {
    return new Promise((resolve, reject) => {
        client.query('SELECT * FROM users WHERE username =? AND password =?', [username, password], (err, results) => {
            if (err) {
                reject(err);
            } else {
                resolve(results.length > 0? results[0] : null);
            }
        });
    });
};

// 处理用户登录逻辑的函数
const login = async (req, res) => {
    const { username, password } = req.body;
    try {
        const user = await findUser(username, password);
        if (user) {
            // 登录成功后，设置响应头，告知浏览器进行重定向到 /items 页面
            res.redirect('/items');
        } else {
            res.json({ ret_code: 1, ret_msg: '账号或密码错误' });
        }
    } catch (err) {
        res.json({ ret_code: 2, ret_msg: '登录失败，请稍后重试' });
    }
};

// 处理用户退出登录逻辑的函数
const logout = (req, res) => {
    req.session.destroy((err) => {
        if (err) {
            res.json({ ret_code: 2, ret_msg: '退出登录失败' });
        } else {
            res.clearCookie('skey');
            // 修改为重定向到登录页面（对应路由'/'）
            res.redirect('/');
        }
    });
};

// 导出用户相关的业务逻辑处理函数
module.exports = {
    login,
    logout
};